home *** CD-ROM | disk | FTP | other *** search
- /*
- Test file for all sherlock macros.
-
- source: sl.tst
- started: June 2, 1988
- version:
- February 14, 1989
- March 24, 1989
- April 19, 1989
- June 30, 1989 include <stdio.h> added.
- */
-
- #undef SHERLOCK
- #define SHERLOCK 1
-
- #ifdef PREFERRED
- #include "sl.h"
- #else
- #include "sl1.h"
- #endif
-
- #include <stdio.h>
-
- struct struct1 {int a;};
- struct struct1 struct1_var;
-
- typedef int bool;
- typedef enum {red, blue, green} en_test;
-
- bool bool_test();
- char char_test();
- double double_test();
- en_test enum_test();
- float float_test();
- int int_test();
- long long_test();
- void * ptr_test();
- char * str_test();
- unsigned int
- uint_test();
- unsigned long
- ulong_test();
- void void_test();
- void name_test();
- void off_test();
- void on_off_test();
- void ptrace_test();
- void stat_test();
- void tick_test();
- void trace_test();
- void time_test();
- void time2_test();
- void sppo_test();
- struct struct1 struct_test();
- struct struct1 s1var;
-
- void f1(void), f2(void), g1(void), g2(void);
-
- main(argc, argv)
- int argc;
- char **argv;
- {
- SL_INIT();
- SL_PARSE(argc, argv, "++", "--");
-
- ENTER_TRACE("main", printf("argc: %d\n", argc));
-
- STAT("main_stat_test");
-
- #ifdef PREFERRED
- printf("\nsltest ");
- #else
- printf("\nsl--1--test ");
- #endif
-
- printf("June 30, 1989\n\n");
-
- bool_test();
- char_test();
- double_test();
- enum_test();
- float_test();
- int_test();
- long_test();
- ptr_test();
- str_test();
- uint_test();
- ulong_test();
- void_test();
- sppo_test();
-
- name_test();
- off_test();
- on_off_test();
- ptrace_test();
- stat_test();
- tick_test();
- trace_test();
- s1var= struct_test();
-
- TRACEP("dump", SL_DUMP());
-
- TRACEPN("dump", SL_CLEAR(); printf("\n"));
- time_test();
- TRACEP("dump", SL_DUMP());
-
- TICK("BAD_TRACEPOINT_NAME!");
- LEAVE("main");
- }
-
- bool bool_test()
- {
- ENTER("bool_test");
- sl_bout(1);
- printf("\nshould return %s\n", sl_sbout(1));
- RETURN_BOOL("bool_test",1);
- }
-
- char char_test()
- {
- TICKB("char_test");
- sl_cout('A');
- printf("\nshould return A\n");
- RETURN_CHAR("char_test", 'A');
- }
-
- double double_test()
- {
- TICKB("double_test");
- sl_dout(0.2);
- printf("\nshould return 0.2\n");
- RETURN_DOUBLE("double_test", (double) 0.2);
- }
-
- en_test enum_test()
- {
- TICKB("enum_test");
- sl_iout((int)blue);
- printf("\nshould return blue in {red, blue, green}\n");
- RETURN_INT("enum_test", blue);
- }
-
- float float_test()
- {
- TICKB("float_test");
- sl_fout(0.1);
- printf("\nshould return 0.1\n");
- RETURN_FLOAT("float_test", 0.1);
- }
-
- int int_test()
- {
- TICKB("int_test");
- sl_iout(10);
- printf("\nshould return 10\n");
- RETURN_INT("int_test", 10);
- }
-
- long long_test()
- {
- TICKB("long_test");
- sl_lout(20L);
- printf("\nshould return 20L\n");
- RETURN_LONG("long_test", 20L);
- }
-
- void * ptr_test()
- {
- int a;
-
- TICKB("ptr_test");
- sl_pout(&a);
- printf("\nshould return %p\n", &a);
- RETURN_PTR("ptr_test", &a);
- }
-
- char * str_test()
- {
- TICKB("str_test");
- sl_sout("abc");
- printf("\nshould return \"abc\"\n");
- RETURN_STRING("str_test", "abc");
- }
-
- unsigned int uint_test()
- {
- TICKB("uint_test");
- sl_uiout(1000);
- printf("\nshould return 1000 unsigned long\n");
- RETURN_UINT("uint_test", 1000);
- }
-
- unsigned long ulong_test()
- {
- TICKB("ulong_test");
- sl_ulout(2000L);
- printf("\nshould return 2000 unsigned long\n");
- RETURN_ULONG("ulong_test", 2000L);
- }
-
- void void_test()
- {
- TICKB("void_test");
- RETURN_VOID("void_test");
- }
-
- void trace_test()
- {
- TRACEB("trace_test", printf("TRACEB\n"));
- TRACE("trace_test", printf("TRACE\n"));
- TRACEN("trace_test", printf("TRACEN1\n"));
- TRACEN("trace_test", printf("TRACEN2\n"));
- TRACEX("trace_test", printf("TRACEX\n"));
- }
-
- void ptrace_test()
- {
- TRACEPB("tracep_test", printf("TRACEPB\n"));
- TRACEP("tracep_test", printf("TRACEP\n"));
- TRACEPN("tracep_test", printf("TRACEPN1\n"));
- TRACEPN("tracep_test", printf("TRACEPN2\n"));
- TRACEPX("tracep_test", printf("TRACEPX\n"));
- }
-
- void name_test()
- {
- SL_NAME(name,"name_test");
- printf("tracepoint name should be \"name_test\"\n");
- TICKB(name);
- TICKX(name);
- }
-
- void off_test()
- {
- TICKB("off_test");
- SL_OFF("off_test*");
- TICK("off_test_off");
- SL_ON("off_test*");
- TICK("off_test_on");
- TICKX("off_test");
- }
-
- void on_off_test()
- {
- printf("on_off_test begins...\n");
- SL_ON("*");
- f1();
- f2();
- g1();
- g2();
- SL_OFF("f*");
- f1();
- f2();
- g1();
- g2();
- printf("on_off_test ends...\n");
- }
-
- void f1(void)
- {
- TICKB("f1");
- TICKX("f1");
- }
-
- void f2(void)
- {
- TICKB("f2");
- TICKX("f2");
- }
-
- void g1(void)
- {
- TICKB("g1");
- TICKX("g1");
- }
-
- void g2(void)
- {
- TICKB("g2");
- TICKX("g2");
- }
-
- void stat_test()
- {
- STAT("stat_test");
- STATB("stat_test");
- STATX("stat_test"); /* This will bump t_xtrace */
- }
-
- void tick_test()
- {
- TICK("tick_test");
- TICKB("tick_test");
- TICKN("tick_test");
- TICKX("tick_test");
- }
-
- /*
- These two tests are intended to discover something about
- timing statistics.
- */
- void time_test()
- {
- int i, j;
-
- STATB("time_test");
-
- j = 0;
- for (i = 0; i < 10000; i++) {
- j = j + 1;
- }
-
- time2_test();
-
- STATX("time_test");
- }
-
- void time2_test()
- {
- int i, j;
-
- STATB("time2_test");
-
- j = 0;
- for (i = 0; i < 20000; i++) {
- j = j + 1;
- }
- STATX("time2_test");
- }
-
- /*
- Test the routines generated by the SPP -o option.
- */
- void sppo_test(void)
- {
- printf("Test of SPP -o routines: ");
- sl_lpout();
- sl_sout("arg1");
- sl_csout();
- sl_sout("arg2");
- sl_rpout();
- }
-
- /*
- Test functions returning a struct, not pointer to struct.
- */
- struct struct1 struct_test(void)
- {
- printf(" struct1_var: %p\n", struct1_var);
- printf("&struct1_var: %p\n", &struct1_var);
- }
-